package devcamp.team.util;

import android.app.Activity;
import android.content.Context;
import android.widget.Toast;
import devcamp.team.R;

/**
 * 本アプリケーションでよく使いそうな処理内容を集めたクラス.
 * @author moonstruckdrops
 *
 */
public class WowoooooooUtils {
    /**
     * intentのextra用.
     */
    public static final String LATITUDE = "lattiude";
    /**
     * intentのextra用.
     */
    public static final String LONGITUDE = "longitude";


    /**
     * 以下の内容で引数の文字列をチェックする.
     * <ul>
     * <li>文字列がnullの確認</li>
     * <li>文字列が空文字の確認</li>
     * </ul>
     * @param str
     * @return 上記の内容に該当する場合falseを返す。そうでない場合trueを返す.
     */
    public static boolean validate(String str) {
        if (str == null) {
            return false;
        }
        if (str.equals("")) {
            return false;
        }
        return true;
    }

    /**
     * タイトルバーの文字列の設定変更（長い名前・色）
     * @param activity アクティビティ
     */
    public static void setTitle(Activity activity) {
        activity.setTitleColor(activity.getResources().getColor(R.color.orange));
        activity.setTitle(activity.getResources().getString(R.string.app_long_name));
    }
    
    /**
     * 緯度・軽度の変換
     * 「度 DEG」表記から「度分秒 DMS」表記へ
     * 
     */
     public static String decimal2sexagesimal(float value) {
    	int d = (int) value;
    	int m = (int) ((value - d) * 60);
    	float s = (((value - d) * 60) - m) * 60;
    	String dms = String.format("%d° %d′ %.3f″ ", d, m, s); 
		return dms;
     }
     
     /**
      * 位置情報のToast表示
      */
     public static void toastLocation(Context context, float latitude, float longitude, String locationName) {
    	 String str;
    	 if (WowoooooooUtils.validate(locationName) && ! locationName.equals("null")) {
    		 // 場所名も表示
    		 // "null"という文字列が格納されてるデータもあるようなので除外
    		 // 日本語は文字化け：TODO
	    	 str = String.format("%s\n%s : %s\n%s : %s\n%s", 
	  				context.getResources().getString(R.string.location_title), 
	  				context.getResources().getString(R.string.latitude), 
	  				WowoooooooUtils.decimal2sexagesimal(latitude),  
	  				context.getResources().getString(R.string.longitude), 
	  				WowoooooooUtils.decimal2sexagesimal(longitude),
	  				locationName
	  				);
    	 } else {
    		 str = String.format("%s\n%s : %s\n%s : %s", 
 	  				context.getResources().getString(R.string.location_title), 
 	  				context.getResources().getString(R.string.latitude), 
 	  				WowoooooooUtils.decimal2sexagesimal(latitude),  
 	  				context.getResources().getString(R.string.longitude), 
 	  				WowoooooooUtils.decimal2sexagesimal(longitude)
 	  				);
    	 }
  				
	     Toast.makeText(context, str, Toast.LENGTH_LONG).show();
     }

}
